package com.idlecode.statics;

import com.idlecode.config.template.TemplateInfo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @program: IdleCode
 * @description
 * @author: rongjuwei
 * @create: 2024-07-10 16:05
 **/
public class TemplateInfo4Util {

    protected static final Map<String, String> info = new HashMap<>();

    public static final String codeBasePath = "src/main/java";

    static {
        info.put("格式四", "代码格式四的代码生成在com.project包下。\n" +
                "格式四的详细说明：\n" +
                "1、BaseMapper中使用的update_time和update_user获取方法修改\n" +
                "       t.update_time = '${@com.zhhb.framework.util.BaseDateUtil@now()}',\n" +
                "       t.update_user = '${@com.zhhb.framework.sso.SsoServlet@getSessionUserAccount()}'\n" +
                "\n" +
                "2、controller层不再处理异常，异常由拦截器统一处理\n" +
                "    @PostMapping(\"listPage.do\")\n" +
                "    public Page<DictDictionaryClassEntity> listPage(Page page, HttpServletRequest request) {\n" +
                "        page.intPageForList(request);\n" +
                "        page.getPd().put(\"orderBy\", \"order_num asc, create_Time desc, id desc\");\n" +
                "        dictDictionaryClassService.getListPage(page);\n" +
                "        return page;\n" +
                "    }");
    }

    public static List<TemplateInfo> getTemplates(List<String> selectedGenFileItems) {
        List<TemplateInfo> templateList = new ArrayList<>();
        for (String selectedGenFileItem : selectedGenFileItems) {
            if ("Controller.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format4/Controller.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/project/${packagePath}/controller/${ClassName}Controller.java");
                templateList.add(templateInfo);
            }
            if ("Entity.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format4/Entity.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/project/${packagePath}/entity/${ClassName}Entity.java");
                templateList.add(templateInfo);
            }
            if ("BaseEntity.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format4/BaseEntity.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/project/${packagePath}/entity/base/${ClassName}BaseEntity.java");
                templateList.add(templateInfo);
            }
            if ("Mapper.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format4/Mapper.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/project/${packagePath}/mapper/${ClassName}Mapper.java");
                templateList.add(templateInfo);
            }
            if ("Mapper.xml".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format4/Mapper.xml.ftl");
                templateInfo.setGeneratorPath("${packageName}/project/${packagePath}/mapper/${ClassName}Mapper.xml");
                templateList.add(templateInfo);
            }
            if ("BaseMapper.xml".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format4/BaseMapper.xml.ftl");
                templateInfo.setGeneratorPath("${packageName}/project/${packagePath}/mapper/base/${ClassName}BaseMapper.xml");
                templateList.add(templateInfo);
            }
            if ("Service.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format4/Service.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/project/${packagePath}/service/${ClassName}Service.java");
                templateList.add(templateInfo);
            }
            if ("ServiceImpl.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format4/ServiceImpl.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/project/${packagePath}/service/impl/${ClassName}ServiceImpl.java");
                templateList.add(templateInfo);
            }
        }
        return templateList;
    }
}
